/*
 * @(#)TagUtils.java $version 2010. 8. 11
 *
 * Copyright 2007-2010 NHN Corp. All rights Reserved. 
 * NHN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.nhncorp.usf.web.taglibs;

/**
 * @author Web Platform Development Team
 */
public class TagUtils {

	/**
	 * 문자열에 포함된 특정 기호를 Entity Type으로 변경한 후 반환한다.
	 * 아래의 기호에 대한 Entity를 반환한다.
	 * <ul>
	 * 	<li>&lt;</li>
	 * 	<li>&gt;</li>
	 * 	<li>'</li>
	 * 	<li>&quot;</li>
	 * 	<li>&amp;</li>
	 * </ul>
	 *
	 * @param text 특정 기호를 포함한 문자열
	 * @return Entity Type으로 변경된 문자열
	 */
	public static String replaceSymbolToEntity(String text) {
		StringBuffer buff = new StringBuffer();
		char[] block = text.toCharArray();
		String stEntity = null;
		int i, last;

		for (i = 0, last = 0; i < block.length; i++) {
			switch (block[i]) {
				case '<':
					stEntity = "&lt;";
					break;
				case '>':
					stEntity = "&gt;";
					break;
				case '\'':
					stEntity = "&apos;";
					break;
				case '\"':
					stEntity = "&quot;";
					break;
				case '&':
					stEntity = "&amp;";
					break;
				default:
					break;
			}
			if (stEntity != null) {
				buff.append(block, last, i - last);
				buff.append(stEntity);
				stEntity = null;
				last = i + 1;
			}
		}
		if (last < block.length) {
			buff.append(block, last, i - last);
		}

		return buff.toString();
	}
}
